using System;
using System.Collections.Generic;
using System.Text;

namespace MakeIT.SGI.ERP.Entidades
{
	public class ClucroVO
	{
		// Impedir o uso de new para esta classe
		protected ClucroVO() { }

		// Cria uma instancia desta classe
		public static ClucroVO CreateVO()
		{
			ClucroVO clucro = new ClucroVO();
			clucro.idFilialVO = FilialVO.CreateVO();
			clucro.idCLucroPaiVO = new ClucroVO();
			return clucro;
		}
		public static ClucroVO CreateVO(int idCLucro, string cLucro)
		{
			ClucroVO obj = CreateVO();
			obj.idCLucro = idCLucro;
			obj.cLucro = cLucro;
			return obj;
		}
		// Descrição amigavel do conteudo deste objeto
        public override string ToString()
        {
            return cLucro != null ? cLucro.ToString() : "";
        }

        public string tostring
        {
            get { return idCLucro != -1 ? idCLucro + " - " + cLucro : ""; }
        }

		// Retorna PK concatenada com ";"
		public string PKString
		{
			get { return idCLucro.ToString(); }
		}

		#region MEMBROS DA CLASSE
		public int idCLucro
		{
			get { return this._idCLucro; }
			set { this._idCLucro = value; }
		}
		private int _idCLucro;
		public string cLucro
		{
			get { return this._cLucro; }
			set { this._cLucro = value; }
		}
		private string _cLucro;
		public int idFilial
		{
			get { return this._idFilial; }
			set { this._idFilial = value; 
			      if(value!=null) this.idFilialVO.idFilial = (int)value; }
		}
		private int _idFilial;
		public int idCLucroPai
		{
			get { return this._idCLucroPai; }
			set { this._idCLucroPai = value; 
			      if(value!=null) this.idCLucroPaiVO.idCLucro = (int)value; }
		}
		private int _idCLucroPai;
		public DateTime cadastro
		{
			get { return this._Cadastro; }
			set { this._Cadastro = value; }
		}
		private DateTime _Cadastro;
		public string cadastradoPor
		{
			get { return this._CadastradoPor; }
			set { this._CadastradoPor = value; }
		}
		private string _CadastradoPor;
		public DateTime edicao
		{
			get { return this._Edicao; }
			set { this._Edicao = value; }
		}
		private DateTime _Edicao;
		public string editadoPor
		{
			get { return this._EditadoPor; }
			set { this._EditadoPor = value; }
		}
		private string _EditadoPor;
		public FilialVO idFilialVO
		{
			get { return this._idFilialVO; }
			set { this._idFilialVO = value; }
		}
		private FilialVO _idFilialVO;
		public ClucroVO idCLucroPaiVO
		{
			get { return this._idCLucroPaiVO; }
			set { this._idCLucroPaiVO = value; }
		}
		private ClucroVO _idCLucroPaiVO;
		#endregion
	}
}
